<template>
  <div>
    <el-card>
      <!-- 2.为 ECharts 准备一个定义了宽高的 DOM -->
      <div id="main" ref="main"></div>
    </el-card>
  </div>
</template>

<script>
// 1.导入echarts
import * as echarts from 'echarts'
import _ from 'lodash'
import commonAPI from '@/api/commonAPI/commonAPI.js'
export default {
  data() {
    return {
      // 报表数据
      options: {
        title: {
          text: '用户来源'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: '#E9EEF3'
            }
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true
        },
        xAxis: [
          {
            boundaryGap: false
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ]
      }
    }
  },
  // 此时页面DOM结构已经被渲染完毕了
  async mounted() {
    // 3.基于准备好的dom，初始化echarts实例(通过 echarts.init 方法初始化一个 echarts 实例)
    const myChart = echarts.init(this.$refs.main)
    // 4.指定图表的配置项和数据
    const { data: res } = await commonAPI({ method: 'get', url: 'reports/type/1' })
    if (res.meta.status !== 200) return this.$message.error('获取数据报表数据失败!')
    this.$message.success('获取数据报表数据成功!')
    // lodash 提供的合并对象的方法
    const option = _.merge(res.data, this.options)
    // 5.使用刚指定的配置项和数据显示图表(通过 setOption 方法生成一个简单的柱状图)。
    myChart.setOption(option)
  }
}
</script>

<style lang="less" scoped>
#main {
  width: 800px;
  height: 570px;
}
</style>
